################################################################################
# модель Exhibit - экспонат коллекции
# в полях объекта содержатся основные свойства
# в поле card лежат свойства, которые отличаются для разных коллекций
# все методы, необходимые для работы, находятся в классе Exhibit
# дополнительные классы только хранят расширенные данные
################################################################################
@CLASS
Exhibit
@USE
ActiveRecord.p
@BASE
ActiveRecord
@OPTIONS
locals


@auto[]
	^rem{ хранилище }
	$self.hI[^initI[
		^rem{ создается связь с объектом какого-либо класса }
		$.oCard[
			$.sLinkType[has_one]     ^rem{ если has_one - пытается контролировать что-то, наверное... }
			$.bPolymorphic(true)     ^rem{ полиморфная связь: кроме колонки card_id будет использована колонка card_type, задающая имя класса, объект которого привязан к данному полю }
			$.sIdColumn[card_uid]     ^rem{ имя связующей колонки (по умолчанию - card_id) }
			$.sTypeColumn[card_type] ^rem{ имя колонки, определяющей класс связанного объекта (по умолчанию - card_type) }
		]
		^rem{ если нужно изменить свойства полей, подцепляемых из БД, то это делается тут же }
# 		$.sSomeField[
# 			$.sColumnName[card_type] ^rem{ колонка БД name транслируется в поле sName, а поле name не будет доступно }
# 		]
	]]
################################################################################


@init[h]
	^BASE:init[$h]


@find[iId]
	^BASE:find($iId)
	
	